﻿
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace QL_DonDatHang
{
    public partial class frmMatHang : Form
    {
        string strConn = @"Server=; Database=QL_BANHANG_GIOCHA; Integrated Security=True";
        SqlConnection dataConnect;

        public frmMatHang()
        {
            InitializeComponent();
        }

        public void loadDataMH(string caulenhsql = "select * from QL_MATHANG")
        {
            //khai báo và khởi tạo dối tượng ràng buộc dữ liệu
            BindingSource bs = new BindingSource();

            //Lấy về dữ liệu dạng dataTable
            SqlDataAdapter da = new SqlDataAdapter(caulenhsql, dataConnect);
            DataTable dt = new DataTable();
            da.Fill(dt);
            dgv_DSMatHang.DataSource = dt;
        }
        private void frmMatHang_Load(object sender, EventArgs e)
        {
            dataConnect = new SqlConnection(strConn);
            dataConnect.Open();
            loadDataMH();
        }

        private void dgv_DSMatHang_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
        {
            dgv_DSMatHang.Rows[e.RowIndex].Cells["cl_STTMH"].Value = e.RowIndex + 1;
        }

        private void btn_ThemMH_Click(object sender, EventArgs e)
        {
            SqlCommand cmd = new SqlCommand("insertMH", dataConnect);
            cmd.CommandType = CommandType.StoredProcedure;

            SqlParameter p = new SqlParameter("@TenMH", txt_tenMH.Text);
            cmd.Parameters.Add(p);
            p = new SqlParameter("@donViTinh", txt_DVT.Text);
            cmd.Parameters.Add(p);
            p = new SqlParameter("@donGia", txt_DonGia.Text);
            cmd.Parameters.Add(p);

            int count = cmd.ExecuteNonQuery();
            if (count == 1)
            {
                MessageBox.Show("Thêm mới thành công! ", "Thông báo");
                loadDataMH();
            }
            else
            {
                MessageBox.Show("Không thể thêm mới", "Thông báo");
            }
        }

        private void btn_Edit_Click(object sender, EventArgs e)
        {
            SqlCommand cmd = new SqlCommand("SP_UPDATE_MH", dataConnect);
            cmd.CommandType = CommandType.StoredProcedure;

            SqlParameter p = new SqlParameter("@TenMH", txt_tenMH.Text);
            cmd.Parameters.Add(p);
            p = new SqlParameter("@TenMHMoi", txt_TenMoi.Text);
            cmd.Parameters.Add(p);
            p = new SqlParameter("@donViTinh", txt_DVTMoi.Text);
            cmd.Parameters.Add(p);
            p = new SqlParameter("@donGia", txt_DonGiaMoi.Text);
            cmd.Parameters.Add(p);

            int count = cmd.ExecuteNonQuery();
            if (count == 1)
            {
                MessageBox.Show("Sửa mặt hàng thành công! ", "Thông báo");
                loadDataMH();
            }
            else
            {
                MessageBox.Show("Không thể sửa mặt hàng", "Thông báo");
            }

        }

        private void dgv_DSMatHang_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex >= 0 && e.ColumnIndex >= 0)
            {
                txt_tenMH.Text = Convert.ToString(dgv_DSMatHang.CurrentRow.Cells["cl_TenMH"].Value);
                txt_DVT.Text = Convert.ToString(dgv_DSMatHang.CurrentRow.Cells["cl_DVT"].Value);
                txt_DonGia.Text = Convert.ToString(dgv_DSMatHang.CurrentRow.Cells["cl_DonGia"].Value);
            }
        }

        private void btn_Delete_Click(object sender, EventArgs e)
        {
            try
            {
                if (MessageBox.Show("Bạn có muốn xóa phong ban đang chọn? ", "Cảnh báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    // Khai báo và khởi tạo đối tượng Command, truyền vào tên thủ tục tương ứng
                    SqlCommand cmd = new SqlCommand("SP_DELETE_MH", dataConnect);

                    // Khai báo kiểu thực thi là Thực thi thủ tục
                    cmd.CommandType = CommandType.StoredProcedure;

                    string tenMH = Convert.ToString(dgv_DSMatHang.CurrentRow.Cells["cl_TenMH"].Value);
                    // Khai báo và gán giá trị cho các tham số đầu vào của thủ tục
                    SqlParameter p = new SqlParameter("@TenMH", tenMH);
                    cmd.Parameters.Add(p);

                    // Thực thi thủ tục
                    int count = cmd.ExecuteNonQuery();
                    if (count > 0)
                    {
                        MessageBox.Show("Đã Xóa thành công! ", "Thông báo");
                        loadDataMH();
                    }
                    else
                        MessageBox.Show("Không thể xóa! ", "Thông báo");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Mặt hàng này đang tồn tại trong đơn đặt hàng! Không thể xóa! ","Thông báo");
            }
        }
    }
}
